home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / prog / uniforth.zip / WORDS.DOC < prev   
Text File  |  1985-08-20  |  94KB  |  2,662 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                                    Appendix A
  10.  
  11.                             UNIFORTH VOCABULARY LIST
  12.  
  13.  
  14.  
  15.              Listed on the next pages are definitions of all of the words 
  16.         available  to  the user after invoking UNIFORTH.   The words  are 
  17.         presented  in alphabetical order.   The first line of each  entry 
  18.         consists of a symbolic description of the action of a  word,  the 
  19.         interpreter characteristics, the level of word's standardization, 
  20.         and the word's pronounciation.
  21.  
  22.              The  word action is shown in abbreviated form  by:   symbols 
  23.         representing input parameters,  three dashes for the word  place-
  24.         ment,  and  any parameters that might be left on the stack.   The 
  25.         symbols used are:
  26.  
  27.                   n,n1,n2 ...         16-bit integer values
  28.                   u,u1,u2 ...         16-bit unsigned integer values
  29.                   d,d1,d2 ...         32-bit integer values
  30.                   ud,ud1,ud2 ...      32-bit unsigned integer values
  31.                   x,x1,x2 ...         32-bit floating point values
  32.                   b,c                 8-bit values
  33.                   cccc,ssss           character strings
  34.  
  35.         The interpreter characteristics are given below.
  36.  
  37.              C  The word may be used only within a colon definition.
  38.  
  39.              E  The  word  should  be executed;  it may not  normally  be 
  40.                 compiled within a colon-definition.
  41.  
  42.              I  The word has immediate action,  even when a colon word is 
  43.                 being defined.
  44.  
  45.              Words defined by the FORTH-83 Standards Team or by FIG-FORTH 
  46.         essentially  follow  their  descriptions.    The  standardization 
  47.         levels are given below.
  48.  
  49.              F  The word is part of the FORTH-83 Standard.
  50.  
  51.              G  The word is part of FIG-FORTH.
  52.  
  53.              U  The word is unique to UNIFORTH.
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.         UNIFORTH VOCABULARY LIST                                Page A-2
  69.  
  70.  
  71.  
  72.  
  73.         !     n addr ---     F                            "store"
  74.              Store n at address.
  75.  
  76.         !CSP                 
  77.              Save the stack position in CSP.   Used as part of the compi-
  78.              ler security.  
  79.  
  80.         !DATE     ---       U
  81.              Store the date into time-keeping buffer CLKADR.   The system 
  82.              will prompt you for input. 
  83.  
  84.         !TIME     ---       U     
  85.              Store the time into time-keeping buffer CLKADR.   The system 
  86.              will prompt you for input. 
  87.  
  88.         #      ud1 --- ud2     F                "sharp"
  89.              The  remainder  of  ud1 divided by BASE is converted  to  an 
  90.              ASCII  character and appended to the output  string  towards 
  91.              lower  memory addresses.   Result ud2 is the quotient  after 
  92.              division  by BASE and is maintained for further  processing.  
  93.              Used between <# and #>.
  94.  
  95.         #>     d --- addr n     F               "sharp-greater"
  96.              End pictured numeric output conversion.  Drop d, leaving the 
  97.              text address and character count (as suitable for TYPE).
  98.  
  99.         #BUFF     --- adr
  100.              A  variable containing the number of disk buffers  allocated 
  101.              to the system.  
  102.  
  103.         #S     ud --- 0 0     F                 "sharp-s"
  104.              Convert  all digits of an unsigned 32-bit number ud,  adding 
  105.              each  to the pictured numeric output string,  until quotient 
  106.              is zero.  A single zero is added to the output string if the 
  107.              number  was  initially zero.   Use only between <#  and  #>. 
  108.  
  109.         #TIB      --- adr        F
  110.              A variable containing the number of bytes in the text  input 
  111.              buffer.
  112.  
  113.         $;;                U     
  114.              basic case branch terminator word, compiled by ;; .  
  115.  
  116.         $<:                 U
  117.              Basic case branch entry word, compiled by <:.
  118.  
  119.         $=:                U     
  120.              Basic case branch entry word, compiled by =: .  
  121.  
  122.         $>:                 U
  123.              Basic case branch entry word, compiled by >:.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.         UNIFORTH VOCABULARY LIST                                Page A-3
  135.  
  136.  
  137.         $CASE              U     
  138.              Basic case beginning word, compiled by CASE.  
  139.  
  140.         '     --- addr     F,I             "tick"
  141.              Used in the form:
  142.                       ' <name>     
  143.              Leave  the code field address of the next word accepted from 
  144.              the  input stream.   An error condition exists if not  found 
  145.              after  a search of the FORTH vocabulary.   Within  a  colon-
  146.              definition  '  <name> is identical to [ ' <name> ]  LITERAL.  
  147.  
  148.  
  149.         (                   F,I            "paren"
  150.              Used in the form:
  151.                      ( ccc)     
  152.              Accept  and ignore comment characters from the input stream, 
  153.              until  the  next right parenthesis.   As a  word,  the  left 
  154.              parenthesis must be followed by one blank.  It may be freely 
  155.              used  while  executing or  compiling.   An  error  condition 
  156.              exists  if  the input stream is exhausted before  the  right 
  157.              parenthesis.   The  right parenthesis is pronounced  "close-
  158.              paren" 
  159.  
  160.         (+LOOP)     n ---     G     
  161.              The  run-time procedure compiled by +LOOP,  which increments 
  162.              the  loop  index by n and tests for  loop  completion.   See 
  163.              +LOOP.   
  164.  
  165.         (.")               G          
  166.              The run-time procedure,  compiled by ." which transmits  the 
  167.              following  in-line text to the selected output device.   See 
  168.              ."  
  169.  
  170.         (;CODE)               G     
  171.              The run-time procedure, compiled by ;CODE, that rewrites the 
  172.              code field of the most recently defined word to point to the 
  173.              following machine code sequence.  See ;CODE.  
  174.  
  175.         (DO)               C,G     
  176.              The  run-time procedure compiled by DO which moves the  loop 
  177.              control parameters to the return stack.  See DO.  
  178.  
  179.         (FIND)     addr1 addr2 --- pfa b tf   (ok)    G           
  180.                    addr1 addr2 --- ff        (bad)     
  181.              Searches  the dictionary starting at the name field  address 
  182.              addr2,  matching  to the text at addr1.   Returns  parameter 
  183.              field  address,  length byte of name field and boolean  true 
  184.              for  a good match.   If no match is found,  only  a  boolean 
  185.              false is left.  
  186.  
  187.         (LATEST)   adr1 --- adr2 adr3     U
  188.              Searching  at  vocabulary  line  adr1,  return  latest  word 
  189.              address  in vocabulary (adr2) and a pointer to  the  correct 
  190.              link thread (adr3).
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.         UNIFORTH VOCABULARY LIST                                Page A-4
  201.  
  202.  
  203.  
  204.         (LINE)     n1 n2 --- addr count     G     
  205.              Convert  the  line number n1 and the screen n2 to  the  disk     
  206.              buffer address containing the data.  The count  left  on the
  207.              stack always is 64, the full line text length.  
  208.  
  209.         (LOOP)               G     
  210.              The  run-time  procedure compiled by LOOP  which  increments     
  211.              the loop index and tests for loop completion.  See LOOP.  
  212.  
  213.         (NUMBER)   adr --- d      G     
  214.              Part of the numeric conversion process.  Called by NUMBER.
  215.  
  216.         (VALUE)     addr1 --- n     U     
  217.              Convert  the ASCII text beginning at addr1+1 with regard  to     
  218.              BASE.  The converted 16-bit value n is left on the stack.  
  219.  
  220.         *     n1 n2 --- n3     F           "times"
  221.              Leave the arithmetic product of n1 times n2.
  222.  
  223.         */     n1 n2 n3 --- n4     F       "times-divide"
  224.              Multiply  n1 by n2,  divide the result by n3 and  leave  the     
  225.              quotient  n4.   n4 is rounded toward zero.   The product  of     
  226.              n1  times  n2 is maintained as an intermediate 32-bit  value     
  227.              for   greater  precision  than  the   otherwise   equivalent     
  228.              sequence:  n1 n2 * n3 /
  229.  
  230.         */MOD     n1 n2 n3 --- n4 n5     F      "times-divide-mod"
  231.              Multiply  n1  by n2,  divide the result by n3 and leave  the     
  232.              remainder n4 and quotient n5.   A 32-bit intermediate result     
  233.              is used as for */,  and the quotient is rounded toward zero.  
  234.              The remainder has the same sign as the divisor, n1.
  235.  
  236.         +     n1 n2 --- n3     F           "plus"
  237.              Leave the arithmetic sum of n1 plus n2.
  238.  
  239.         +!     n addr ---     F            "plus-store"
  240.              Add n to the 16-bit value at the address,  by the convention     
  241.              given for +.
  242.  
  243.         +@     n1 n2 --- n3     SYSTEM block 35     U     
  244.              Add  n1 to n2 to create an address.   Fetch the contents  of 
  245.              that address.  
  246.  
  247.         +DISK                    U
  248.              Turn on text file echo.  Uses channel B.
  249.  
  250.         +LOOP     n ---     F,I            "plus-loop"
  251.              Add the signed increment n to the loop index.  Return execu-
  252.              tion  to  the  corresponding  DO  until  the  new  index  is 
  253.              incremented across the boundary of limit-1 and limit.   Upon 
  254.              exit from the loop, discard the loop control parameters.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.         UNIFORTH VOCABULARY LIST                                Page A-5
  267.  
  268.  
  269.         +ORIGIN    n --- addr     G     
  270.              Leave  the  memory  address  relative by  n  to  the  origin 
  271.              parameter area.   n is the minimum address unit, either byte 
  272.              or  word.  This definition is used to access or  modify  the 
  273.              boot-up parameters at the origin area. 
  274.  
  275.         +PRINTER                 U
  276.              Enable  echo  to the printer as well as any  current  output 
  277.              device.
  278.  
  279.         ,     n ---     F                       "comma"
  280.              Allot two bytes in the dictionary, storing n there.
  281.  
  282.         -     n1 n2 --- n3     F           "minus"
  283.              Subtract n2 from n1 and leave the difference n3.
  284.  
  285.         -->                G,I             "arrow"
  286.              Continue interpretation with the next sequential block.  May 
  287.              be used within a definition. 
  288.  
  289.         -ES       --- n          U
  290.              Leave  the  negative of the system element size on the  data 
  291.              stack.  For 16-bit systems, leaves -2.
  292.  
  293.         -FIND     --- pfa b tf   (found)     G          
  294.                   --- ff         (not found)     
  295.              Accepts  the  next  text word (delimited by blanks)  in  the 
  296.              input  stream  to HERE,  and searches the CONTEXT  and  then 
  297.              CURRENT vocabularies for a matching entry.   If  found,  the 
  298.              dictionary entry's parameter field address, its length byte, 
  299.              and a boolean true is left.  Otherwise, only a boolean false 
  300.              is left. 
  301.  
  302.         -ROT     n1 n2 n3 --- n3 n1 n2     U     
  303.              Rotate  the  top  stack value to the third  stack  position. 
  304.              Inverse operation to ROT. 
  305.  
  306.         -TRAILING     addr n1 --- addr n2     F     "dash-trailing"
  307.              The character count n1 of a text string beginning at addr is 
  308.              adjusted  to  exclude trailing blanks.  An  error  condition 
  309.              exists if n1 is negative.
  310.  
  311.         .     n ---     F                  "dot"
  312.              Display n converted according to BASE in a free-field format 
  313.              with  one  trailing blank.   Display only a  negative  sign.
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.         UNIFORTH VOCABULARY LIST                                Page A-6
  333.  
  334.  
  335.         ."              F,I                "dot-quote"
  336.              Interpreted  or  used  in a colon-definition  in  the  form:                       
  337.                        ." cccc"     
  338.              Accept the following text from the input stream,  terminated 
  339.              by  " (double-quote).   If executing,  transmit this text to 
  340.              the selected output device.   If compiling,  compile so that 
  341.              later  execution  will  transmit the text  to  the  selected 
  342.              output device.   At least 127 characters are allowed in  the 
  343.              text.   If   the  input  stream  is  exhausted  before   the 
  344.              terminating double-quote,  an error condition exists.
  345.  
  346.         .(                       F
  347.              Analogous to dot-quote, except the string is terminated with 
  348.              a right-paren.  Execute mode only.
  349.  
  350.         .DATE          ---     U     
  351.              Print  the  date on the current output devices in  the  form  
  352.              dd-mmm-yy.
  353.  
  354.         .FSIZE    ---              U
  355.              Display the current file's size in bytes
  356.  
  357.         .LINE     line scr ---     G     
  358.              Print  on the terminal device,  a line of text from the disk 
  359.              by  its  line  and  screen  number.    Trailing  blanks  are 
  360.              suppressed. 
  361.  
  362.         .R     n1 n2 ---     G     
  363.              Print  the number n1 right aligned in a field whose width is 
  364.              n2.  No following blank is printed. 
  365.  
  366.         .S           ---     U
  367.              Non-destructive print of the data stack contents.
  368.  
  369.         .TIME        ---     U     
  370.              Print  the  time on the current output devices in  the  form  
  371.              HH:MM:SS. 
  372.  
  373.         /     n1 n2 --- n3     F                     "divide"
  374.              Divide  n1 by n2 and leave the quotient n3.   n3 is  rounded 
  375.              toward zero.
  376.  
  377.         /MOD     n1 n2 --- n3 n4     F               "divide-mod"
  378.              Divide n1 by n2 and leave the remainder n3 and quotient  n4. 
  379.              n3 has the same sign as n1. n4 is rounded towards zero.
  380.  
  381.         0     --- 0     G     
  382.              Leave the constant 0 on the stack. 
  383.  
  384.         0<     n --- flag     F                 "zero-less"
  385.              True if n is less than zero (negative).
  386.  
  387.         0<=     n --- flag     U     
  388.              True if n is less than or equal to zero. 
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.         UNIFORTH VOCABULARY LIST                                Page A-7
  399.  
  400.  
  401.  
  402.         0<>     n --- flag     U     
  403.              True if n is not equal to zero. 
  404.  
  405.         0=     n --- flag     F                 "zero-equals"
  406.              True is n is zero.
  407.  
  408.         0>     n --- flag     F                 "zero-greater"
  409.              True if n is greater than zero.
  410.  
  411.         0>=     n --- flag     U     
  412.              True if n is greater than or equal to zero. 
  413.  
  414.         0BRANCH     f ---     G     
  415.              The  run-time  procedure to conditionally branch.   If f  is 
  416.              false,  the  following  in-line parameter is  added  to  the 
  417.              interpretive  pointer to branch ahead of back.   Compiled by 
  418.              IF, UNTIL and WHILE. 
  419.  
  420.         1     --- 1     G     
  421.              Leave the constant 1 on the stack. 
  422.  
  423.         1+     n --- n+1     F                  "one-plus"
  424.              Increment n by one,  according to the operation for +.
  425.  
  426.         1+!     addr ---     U     
  427.              Increment the contents of addr by 1. 
  428.  
  429.         1-     n --- n-1     F                       "one-minus"
  430.              Decrement  n by one,  according to the  operation  minus.
  431.  
  432.         1-!     addr ---     U     
  433.              Decrement the contents of addr by 1. 
  434.  
  435.         1.E1     --- n1     U     
  436.              The floating point constant 10.0 .
  437.  
  438.         2     --- 2     G     
  439.              Leave the constant 2 on the stack. 
  440.  
  441.         2!     d addr ---     F                      "two-store"
  442.              Store  d in 4 consecutive bytes beginning at addr,  as for a 
  443.              double number.
  444.  
  445.         2*     n1 --- n2     G     
  446.              Multiply n1 by 2 (signed). 
  447.  
  448.         2+     n --- n+2     F                       "two-plus"
  449.              Increment n by two,  according to the operation for +. 
  450.  
  451.         2+!     addr ---     U     
  452.              Increment the contents of addr by 2. 
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.         UNIFORTH VOCABULARY LIST                                Page A-8
  465.  
  466.  
  467.         2-     n --- n-2     F                       "two-minus"
  468.              Decrement n by two,  according to the operation for minus. 
  469.  
  470.         2-!     addr ---     U     
  471.              Decrement the contents of addr by 2. 
  472.  
  473.         2/     n1 --- n2     U     
  474.              Divide n1 by 2 (signed). 
  475.  
  476.         2@     addr --- d     F                      "two-fetch"
  477.              Leave  on  the stack the contents of  the  four  consecutive 
  478.              bytes  beginning  at addr,  as for a double  number. 
  479.  
  480.         2>R     d1 ---     F     
  481.              Remove  the  topmost 32-bit value from the  data  stack  and 
  482.              place it on the return stack. 
  483.  
  484.         2CONSTANT     d ---     F                    "two-constant"
  485.              A defining word used in the form:
  486.                      d 2CONSTANT <name>     
  487.              to  create a dictionary entry for <name>,  leaving d in  its 
  488.              parameter field.   When <name> is later executed,  d will be 
  489.              left on the stack.
  490.  
  491.         2DROP     d ---     F                   "two-drop"
  492.              Drop the top double number on the stack.
  493.  
  494.         2DUP     d --- d d     F                "two-dup"
  495.              Duplicate the top double number on the stack.
  496.  
  497.         2OVER     d1 d2 --- d1 d2 d1     F      "two-over"
  498.              Leave a copy of the second double number on the stack.
  499.  
  500.         2R>     --- d1     F     
  501.              Remove  the  topmost 32-bit value from the return stack  and 
  502.              place it on the data stack. 
  503.  
  504.         2ROT     d1 d2 d3 --- d2 d3 d1     F     "two-rote"
  505.              Rotate  the  third double number to the top  of  the  stack. 
  506.  
  507.         2SWAP     d1 d2 --- d2 d1     F         "two-swap"
  508.              Exchange  the  top two double numbers on the  stack.
  509.  
  510.         2VARIABLE               F               "two-variable"
  511.              Used in the form:
  512.                        2VARIABLE <name>
  513.              Create  a  dictionary entry for <name> and allocate 4  bytes 
  514.              for  storage in the parameter field.   When <name> is  later 
  515.              executed, it will leave the address of the first byte of its 
  516.              parameter field on the stack.
  517.  
  518.         3     --- n     G     
  519.              Leave the constant 3 on the stack. 
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.         UNIFORTH VOCABULARY LIST                                Page A-9
  531.  
  532.  
  533.         4+    n1 --- n2     U
  534.              Add 4 to the top stack value.
  535.  
  536.         4-    n1 --- n2     U
  537.              Subtract 4 from the top stack value.
  538.  
  539.         8*     n1 --- n2     U
  540.              Multiply n1 by 8 (3-bit left shift).
  541.  
  542.         :                    F                       "colon"
  543.              A defining word used in the form:
  544.                      : <name> . . . ;     
  545.              Create a dictionary entry for <name>,  and set compile mode. 
  546.              Words  thus  defined are  called  'colon-definitions'.   The 
  547.              compilation  addresses  of subsequent words from  the  input 
  548.              stream  which  are not immediate words are stored  into  the 
  549.              dictionary  to  be executed when <name> is  later  executed. 
  550.              IMMEDIATE  words are executed as encountered.   If a word is 
  551.              not found after a search of the vocabulary,  conversion  and 
  552.              compilation of a literal number is attempted, with regard to 
  553.              the current BASE;  that failing,  an error condition exists.
  554.  
  555.         ;                 F,I,C                 "semi-colon"
  556.              Terminate  a  colon  definition and  stop  compilation.   If 
  557.              compiling  from  mass  storage  and  the  input  stream   is 
  558.              exhausted before encountering ';' an error condition exists.
  559.  
  560.         ;;          U,I     
  561.              Terminating  word of a satisfied CASE branch.   Branches  to 
  562.              just after CASEND. 
  563.  
  564.         ;CODE             U,I     
  565.              Used in the form:
  566.                   : cccc . . . ;CODE . . . END-CODE     
  567.              Stop  compilation and terminate a new defining word cccc  by 
  568.              compiling  (;CODE).   Assemble the remaining mnemonics until 
  569.              reaching END-CODE.  When cccc is later executed in the form:
  570.                         cccc <name>     
  571.              the word <name> will be created with its execution procedure 
  572.              given by the machine instructions following ;CODE.  That is, 
  573.              when <name> is executed,  it does so by jumping to the  code 
  574.              after  ;CODE  of cccc.   An existing defining word (such  as 
  575.              CREATE) must exist in cccc prior to ;CODE. 
  576.  
  577.         ;S                    G     
  578.              Stop interpretation of a screen.
  579.  
  580.         <      n1 n2 --- flag     F                  "less-than"
  581.              True  if  n1 is less than n2.   Two special  cases  must  be 
  582.              considered.  ' -32768 32767 <' must return true, and '-32768 
  583.              0' must be distinguished.
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.         UNIFORTH VOCABULARY LIST                                Page A-10
  597.  
  598.  
  599.         <#                     F                "less-sharp"
  600.              Initialize pictured numeric output.  The words: 
  601.                <# ## #S HOLD SIGN #>     
  602.              can be used to specify the conversion of a double- precision 
  603.              number  into an ASCII character string stored  in  right-to-
  604.              left order.
  605.  
  606.         <:                  U
  607.              Start a less-than conditional in the case statement.
  608.  
  609.         <<               U     
  610.              Mark the current stack position.   Used in conjunction  with 
  611.              >> to fill an array. 
  612.  
  613.         <=     n1 n2 --- flag     U     
  614.              True if n1 is less than or equal to n2. 
  615.  
  616.         <>     n1 n2 --- flag     U     
  617.              Compare  n1  to n2.   If they are not equal,  leave  a  true     
  618.              flag; otherwise, leave zero. 
  619.  
  620.         =     n1 n2 --- flag     F                   "equals"
  621.              True if n1 is equal to n2.
  622.  
  623.         =:     n1 ---          U,I     
  624.              Begin  a case comparison.   If satisfied,  execute the words     
  625.              following  =:.   Otherwise,  jump to the word following  the     
  626.              next ;; . 
  627.  
  628.         =CELLS    n1 --- n1      U
  629.              Add 1 if necessary to make n1 an even number.
  630.  
  631.         >     n1 n2 --- flag     F                   "greater-than"
  632.              True if n1 is greater than n2.
  633.  
  634.         >=     n1 n2 --- flag     U     
  635.              True if n1 is greater than or equal to n2. 
  636.  
  637.         >>                  U     
  638.              Used in the form:
  639.                  << n1 n2 ... nn addr >>     
  640.              this word stores all parameters n1, n2, ...nn into the array 
  641.              starting at addr with n1 as the first element. 
  642.  
  643.         >BODY       adr1 --- adr2             F
  644.              Move  from the code field address of a word to the parameter 
  645.              field address (body).
  646.  
  647.         >IN     --- addr     F                       "to-in"
  648.              Leave  the address of a variable which contains the  present 
  649.              character  offset within the input stream {0...1023}   Note:  
  650.              see WORD  (  ."  FIND 
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.         UNIFORTH VOCABULARY LIST                                Page A-11
  663.  
  664.  
  665.         >LINK     adr1 --- adr2       F
  666.              Move from the code field address of a word to its link field 
  667.              address.
  668.  
  669.         >NAME     adr1 --- adr2       F
  670.              Move from the code field address of a word to its name field 
  671.              address.
  672.  
  673.         >R     n ---     F,C                    "to-r"
  674.              Transfer n to the return stack.   Every >R must be  balanced 
  675.              by  a  R> in the same control structure nesting level  of  a 
  676.              colon-definition.
  677.  
  678.         ?     addr ---     F                    "question-mark"
  679.              Display  the number at address,  using the format of  'dot'.
  680.  
  681.         ?ALIGN    ---       U    
  682.              Force the dictionary pointer to an even address.
  683.  
  684.         ?BASE                U     
  685.              Print the current base in decimal. 
  686.  
  687.         ?BLK     ---     U     
  688.              Print the last accessed block in base 10. 
  689.  
  690.         ?COMP          G     
  691.              Issue error message if not compiling.  
  692.  
  693.         ?CSP          G     
  694.              Issue error message if stack position differs from the value 
  695.              saved in CSP.
  696.  
  697.         ?DUP     n --- n  (n)     F             "query-dup"
  698.              Duplicate n if it is non-zero.
  699.  
  700.         ?ERROR     f n ---     G     
  701.              Issue  an  error message number n,  if the boolean  flag  is 
  702.              true. 
  703.  
  704.         ?EXEC          G     
  705.              Issue an error message if not executing. 
  706.  
  707.         ?KEY     --- n     U     
  708.              Check  to see if a key has been struck on the  keyboard.  If 
  709.              so, leave the ASCII value; otherwise, leave a zero. 
  710.  
  711.         ?LOADING          G     
  712.              Issue an error message if not loading. 
  713.  
  714.         ?PAIRS     n1 n2 ---     G     
  715.              Issue an error message if n1 does not equal n2.  The message 
  716.              indicates that compiled conditionals do not match.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.         UNIFORTH VOCABULARY LIST                                Page A-12
  729.  
  730.  
  731.         ?SAVE     adr --- adr     U     
  732.              Flush buffer to disk if it has been updated.   Used by SAVE-
  733.              BUFFERS. 
  734.  
  735.         ?STACK          G     
  736.              Issue an error message if the stack is out of bounds.  
  737.  
  738.         ?TERMINAL     --- f     G     
  739.              Perform a test of the terminal keyboard for actuation of any 
  740.              key.  A true flag indicates actuation. 
  741.  
  742.         @     addr --- n     F                  "fetch"
  743.              Leave on the stack the number contained at addr.
  744.  
  745.         @!     n addr ---     U     
  746.              Fetch  the  contents of addr and use those contents  as  the 
  747.              address into which to store n.  (indirect addressing) 
  748.  
  749.         @+     n1 addr --- n2     U     
  750.              Fetch the contents of addr and add to n1. 
  751.  
  752.         A'        ---            U
  753.              Used in the form:
  754.                        A' c
  755.              Leave  the  ASCII  code for character c  on  the  stack,  or 
  756.              compile into the dictionary if in compile mode.
  757.  
  758.         ABORT          F     
  759.              Clear  the  data and return stack,  setting execution  mode. 
  760.              Return control to the terminal. 
  761.  
  762.         ABORT"    flag ---        F             "abort-quote"
  763.              Used in the form:
  764.                   flag ABORT" cccc"
  765.              When  later executed,  if flag is true the characters  cccc, 
  766.              delimited  by  the  close-quote,  are displayed and  then  a 
  767.              abort sequence that includes ABORT is performed.  If flag is 
  768.              false,  the  flag is dropped and execution  continues.   The 
  769.              blank following ABORT" is not part of cccc.
  770.  
  771.         ABS     n1 --- n2     F                 "absolute"
  772.              Leave the absolute value of a number.
  773.  
  774.         AGAIN     addr n ---     G     
  775.              Used in a colon-definition in the form:
  776.                     BEGIN . . . AGAIN
  777.              At   run-time,   AGAIN   forces  execution  to   return   to 
  778.              corresponding  BEGIN.   There  is no effect  on  the  stack.  
  779.              Execution cannot leave this loop (unless R> DROP is executed 
  780.              one level below). 
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.         UNIFORTH VOCABULARY LIST                                Page A-13
  795.  
  796.  
  797.         ALLOT     n ---     F                   "allot"
  798.              Allocate n bytes in the dictionary.  The address of the next 
  799.              available dictionary location is updated accordingly.
  800.  
  801.         AND     n1 n2 --- n3     F     
  802.              Leave the bitwise logical 'and' of n1 and n2. 
  803.  
  804.         ARRAY               U
  805.              A defining word used in the form:
  806.                   n ARRAY <name>     
  807.              create a buffer n cells long (but not preset to zero).  When 
  808.              <name>  is subsequently executed,  it leaves the address  of 
  809.              the first element. 
  810.  
  811.         ASSEMBLER          F,I     
  812.              The  name  of the  assembler  vocabulary.   Execution  makes 
  813.              ASSEMBLER  the CONTEXT vocabulary.   ASSEMBLER is immediate, 
  814.              so  it  will  execute  during  the  creation  of  a   colon-
  815.              definition, to select this vocabulary at compile time. 
  816.  
  817.         AUTOLOAD  --- adr        U
  818.              A  variable  containing  the block number  you  wish  to  be 
  819.              automatically loaded when invoking UNIFORTH.
  820.  
  821.         B'     --- n     U
  822.              Interpret the next number in base 2 (binary),  regardless of 
  823.              the current base.
  824.  
  825.         B.     n ---     U
  826.              Display  the  number in base 2 (binary),  regardless of  the 
  827.              current base.
  828.  
  829.         B/BUF     --- n     G     
  830.              Leave the number of bytes per buffer on the stack (1024). 
  831.  
  832.         BACK     addr ---          G     
  833.              Calculate  the backward branch offset from HERE to addr  and 
  834.              compile into the next available dictionary memory address. 
  835.  
  836.         BASE     --- addr     F     
  837.              Leave  the  address  of a variable  containing  the  current 
  838.              input-output numeric conversion base.  {2..70} 
  839.  
  840.         BASE'     ---     U
  841.              A  defining  word used to create temporary  base  conversion 
  842.              words.
  843.  
  844.         BASE.     ---     U
  845.              A  defining  word  used to create  temporary  base  printing 
  846.              words.
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.         UNIFORTH VOCABULARY LIST                                Page A-14
  861.  
  862.  
  863.         BEGIN              F,I     
  864.              Used in a colon-definition in the forms:
  865.                      BEGIN . . . flag UNTIL       
  866.              or             
  867.                      BEGIN . . . flag WHILE . . . REPEAT     
  868.              BEGIN  marks  the  start of a word sequence  for  repetitive 
  869.              execution.   A BEGIN-UNTIL loop will be repeated until  flag 
  870.              is  true.   A BEGIN-WHILE-REPEAT loop will be repeated until 
  871.              flag  is  false.   The words after UNTIL or REPEAT  will  be 
  872.              executed  when  either loop is  finished.   Flag  is  always 
  873.              dropped after being tested. 
  874.  
  875.         BELL                  U     
  876.              Send an ASCII 07 (bell) to the current output device. 
  877.  
  878.         BINARY                U     
  879.              Change the current base to binary (base 2). 
  880.  
  881.         BL     --- c     G     
  882.              A constant that leaves the ASCII value for a blank (32). 
  883.  
  884.         BLANKS     addr count ---     G     
  885.              Fill an area of memory beginning at addr with count blanks. 
  886.  
  887.         BLK     --- addr     F                  "b-l-k"
  888.              Leave the address of a variable containing the number of the 
  889.              mass storage block being interpreted as the input stream. If 
  890.              the  content  is zero,  the input stream is taken  from  the 
  891.              text input buffer.
  892.  
  893.         BLOCK     n --- addr     F     
  894.              Leave  the  address of the first byte in block  n.   If  the 
  895.              block is not already in memory,  it is transferred from mass 
  896.              storage into whichever memory buffer has been least recently 
  897.              accessed.  If  the  block  occupying that  buffer  has  been 
  898.              UPDATEd (i.e.  modified),  it is rewritten onto mass storage 
  899.              before  block n is read into the buffer.   n is an  unsigned 
  900.              number.   If   correct  mass  storage read or write  is  not 
  901.              possible,  an error condition exists.
  902.  
  903.         BMOVE     blk1 blk2 n ---     U     
  904.              Move  n  blocks starting at blk1 to the region  starting  at 
  905.              blk2.  The  lowest  numbered block of region blk1  is  moved 
  906.              first. 
  907.  
  908.         BMOVE>     blk1 blk2 n ---     U     
  909.              Move  n  blocks starting at blk1 to the region  starting  at 
  910.              blk2.   The  highest numbered block of region blk1 is  moved 
  911.              first. 
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.         UNIFORTH VOCABULARY LIST                                Page A-15
  927.  
  928.  
  929.         BRANCH          G     
  930.              The  run-time procedure to unconditionally branch.   An  in-
  931.              line  offset  is  added to the interpretive  pointer  IP  to 
  932.              branch  ahead or back.   BRANCH is compiled by ELSE,  AGAIN, 
  933.              REPEAT. 
  934.  
  935.         BS                  U     
  936.              Send an ASCII 08 (backspace) to the current output device. 
  937.  
  938.         BSWAP     n1 --- n2     U     
  939.              Swap the bytes of the 16-bit value n1. 
  940.  
  941.         BUFFER     n --- addr     F     
  942.              Obtain the next block buffer,  assigning it to block n.  The 
  943.              block  is  not  read from mass  storage.   If  the  previous 
  944.              contents  of the buffer has been marked as  UPDATEd,  it  is 
  945.              written to mass storage.  If correct writing to mass storage 
  946.              is  not possible,  an error condition exists.   The  address 
  947.              left  is the first byte within the buffer for data  storage.  
  948.              n is an unsigned number.
  949.  
  950.         BYE       ---       U    
  951.              Exit  UNIFORTH and return to your operating system,  closing 
  952.              the current file in the process.
  953.  
  954.         C!      n addr ---       F              "c-store"
  955.              Store the least significant 8-bits of n at addr.
  956.  
  957.         C,     n ---          G     
  958.              Store  8 bits of n into the next available dictionary  byte, 
  959.              advancing the dictionary pointer by one. 
  960.  
  961.         C/L     --- n     G     
  962.              Leave the number of characters per line (64). 
  963.  
  964.         C@     addr --- byte     F                   "c-fetch"
  965.              Leave  on  the stack the contents of the byte at addr  (with 
  966.              the higher bits zero, in a 16-bit field).
  967.  
  968.         CARRAY     n ---     U
  969.              A defining word used in the form:
  970.                   n CARRAY <name>
  971.              create a buffer n bytes long (but not preset to zero).  When 
  972.              <name>  is subsequently executed,  it leaves the address  of 
  973.              the first element.
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.         UNIFORTH VOCABULARY LIST                                Page A-16
  993.  
  994.  
  995.         CASE                U,I     
  996.              A multiple-IF statement used in the form:
  997.                   CASE
  998.                       n1 =: . . . ;;
  999.                       n2 >: . . . ;;
  1000.                       n3 <: . . . ;;
  1001.                       NOCASE =: . . . ;;
  1002.                  CASEND     
  1003.              It requires a testing value on the stack (it will be removed 
  1004.              by CASE).  n1, n2, ... are comparison value.  If the testing 
  1005.              value is equal to,  less than or greater than any of the set 
  1006.              (n1,n2,...),  then the words following the corresponding =:, 
  1007.              <:  or  >:  are executed,  followed by a branch  to  CASEND.  
  1008.              NOCASE is an optional test to satisfy all non-tested values. 
  1009.  
  1010.         CASEND          U,I     
  1011.              The terminating statement for CASE.   Drops the tested value 
  1012.              from the stack.  See CASE. 
  1013.  
  1014.         CBLIST     n1 n2 ---     U     
  1015.              List all blocks between n1 and n2 inclusive,  one at a time. 
  1016.              To  list  the next block,  hit any key.   To  terminate  the 
  1017.              listing abnormally, enter the escape key. 
  1018.  
  1019.         CDUMP     addr n ---     U     
  1020.              Dump n bytes starting at addr in hex format.   Sixteen bytes 
  1021.              are listed per line,  followed by their ASCII  equivalences. 
  1022.              Non-printing ASCII characters are indicated by periods.  You 
  1023.              can terminate abnormally by striking any key. 
  1024.  
  1025.         CHANA     ---       U  
  1026.              Make channel A the current default file channel.
  1027.  
  1028.         CHANB     ---       U 
  1029.              Make channel B the current default file channel.
  1030.  
  1031.         CLKADR     --- adr     U     
  1032.              The starting address of the 6-byte date and time buffer. 
  1033.  
  1034.         CLOSE        ---       U
  1035.              Close the current file.
  1036.  
  1037.         CLR-BLK     n ---     U     
  1038.              Fill block n with blanks, and put a ;S at its beginning. 
  1039.  
  1040.         CMOVE     addr1 addr2 n ---     F       "c-move"
  1041.              Move  n  bytes  beginning at address addr1  to  addr2.   The 
  1042.              contents  of  addr1 are moved first proceeding  toward  high 
  1043.              memory.   If n is zero or negative nothing is moved. 
  1044.  
  1045.         CMOVE>     adr1 adr2 n ---     F     
  1046.              Move  n  bytes  beginning  at address  adr1  to  adr2.   The 
  1047.              contents of adr1 are moved first preceeding from the end  of 
  1048.              the buffer toward low memory. 
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.         UNIFORTH VOCABULARY LIST                                Page A-17
  1059.  
  1060.  
  1061.  
  1062.         CMPS     adr1 adr2 cnt --- f     U     
  1063.              Compare  the string starting at adr1 to the string at  adr2, 
  1064.              each  with  length cnt bytes.   If str1 is less  than  str2, 
  1065.              leave -1 ; if str1 is equal to str2, leave zero ; if str1 is 
  1066.              greater than str2, leave one. 
  1067.  
  1068.         CODE               F,I     
  1069.              A defining word used in the form:
  1070.                        CODE <name> . . . END-CODE
  1071.              Create  a  dictionary entry for <name>,  and  set  execution 
  1072.              mode.   Words  thus compiled are called  'code-definitions'.  
  1073.              Used in creating assembly language routines.
  1074.  
  1075.         COLD          G     
  1076.              The cold start procedure to adjust the dictionary pointer to 
  1077.              the initial settings and restart via ABORT. 
  1078.  
  1079.         COMPILE               F,C     
  1080.              When  a word containing COMPILE executes,  the 16-bit  value 
  1081.              following  the  compilation  address of  COMPILE  is  copied 
  1082.              (compiled) into the dictionary.   That is,  COMPILE DUP will 
  1083.              copy the compilation address of DUP. 
  1084.  
  1085.         CONSTANT     n ---     F     
  1086.              A defining word used in the form:
  1087.                         n CONSTANT <name>     
  1088.              to  create a dictionary entry for <name>,  leaving n in  its 
  1089.              parameter field.   When <name> is later executed,  n will be 
  1090.              left on the stack. 
  1091.  
  1092.         CONTEXT     --- addr     F     
  1093.              A  user  variable  containing a pointer  to  the  vocabulary 
  1094.              within which dictionary searches will first begin. 
  1095.  
  1096.         CONTROLS?     adr cnt --- f     U     
  1097.              Check the buffer starting at adr with length cnt bytes.   If 
  1098.              there  are any control characters (ASCII 31 or less) in  the 
  1099.              buffer, leave a 1 on the stack; otherwise, leave a 0. 
  1100.  
  1101.         CONVERT     d1 addr1 --- d2 addr2     F     
  1102.              Convert  the ASCII text beginning at addr1+1 with regard  to 
  1103.              BASE.   The new value is accumulated into double number  d1, 
  1104.              being  left  as  d2.   Addr2  is the address  of  the  first 
  1105.              unconvertable digit.  Used by NUMBER.  
  1106.  
  1107.         COPY     n1 n2 ---     U     
  1108.              Copy block n1 into block n2. 
  1109.  
  1110.         COPYATOB       n1 n2 ---      U
  1111.              Copy block n1 from channel A to block n2 in channel B.
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.         UNIFORTH VOCABULARY LIST                                Page A-18
  1125.  
  1126.  
  1127.         COUNT     addr --- addr+1 n     F     
  1128.              Leave  the  address addr+1 and the character count  of  text 
  1129.              beginning at addr.   The first byte at addr must contain the 
  1130.              character count n.  Range of n is {0..255}. 
  1131.  
  1132.         CR                     F                          "c-r"
  1133.              Cause  a  carriage-return  and line-feed  to  occur  at  the 
  1134.              current output device.
  1135.  
  1136.         CREATE                F     
  1137.              A defining word used in the form:
  1138.                       CREATE <name>     
  1139.              to create a dictionary entry for <name>,  without allocating 
  1140.              any  parameter  field memory.   When <name> is  subsequently 
  1141.              executed,   the  address  of  the  first  byte  of  <name>'s 
  1142.              parameter field is left on the stack. 
  1143.  
  1144.         CSP     --- addr     G     
  1145.              A  user  variable  temporarily  storing  the  stack  pointer 
  1146.              position,     for compilation error checking. 
  1147.  
  1148.         CURRENT     --- addr     F     
  1149.              A variable containing the current vocabulary pointer. 
  1150.  
  1151.         D+     d1 d2 --- d3     F               "d-plus"
  1152.              Leave the arithmetic sum of d1 and d2.
  1153.  
  1154.         D-     d1 d2 --- d3     F                    "d-minus"
  1155.              Subtract d2 from d1 and leave the difference d3.
  1156.  
  1157.         D>S      d --- n     G     
  1158.              Truncate  the double precision value to its single precision 
  1159.              equivalent.  Same as DROP. 
  1160.  
  1161.         D.     d ---     F                      "d-dot"
  1162.              Display  d  converted  according to  BASE  in  a  free-field 
  1163.              format,  with one trailing blank.   Display the sign only if 
  1164.              negative.
  1165.  
  1166.         D.R     d n ---     F                   "d-dot-r"
  1167.              Display d converted according to BASE, right aligned in an n 
  1168.              character field.  Display the sign only if negative.
  1169.  
  1170.         D0<     d --- flag     U     
  1171.              Leave true if d is less than zero. 
  1172.  
  1173.         D0=     d --- flag     F                "d-zero-equals"
  1174.              Leave true if d is zero.
  1175.  
  1176.         D<     d1 d2 --- flag     F             "d-less"
  1177.              True if d1 is less than d2.  "d-less" 
  1178.  
  1179.         D=     d1 d2 --- flag     F             "d-equal"
  1180.              True is d1 equals d2.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.         UNIFORTH VOCABULARY LIST                                Page A-19
  1191.  
  1192.  
  1193.  
  1194.         DABS     d1 --- d2     F           "d-abs"
  1195.              Leave as a positive double number d2,  the absolute value of 
  1196.              a double number, d1.  {0..2,147,483,647}
  1197.  
  1198.         DECIMAL             F
  1199.  
  1200.              Set the input-output numeric conversion base to ten. 
  1201.  
  1202.         DEFINITIONS               F     
  1203.              Used in the form:
  1204.                    cccc DEFINITIONS     
  1205.              Set  the CURRENT vocabulary to the CONTEXT  vocabulary.   In 
  1206.              the  example,  executing  vocabulary  name ccc made  it  the 
  1207.              CONTEXT  vocabulary  and  executing  DEFINITIONS  made  both 
  1208.              specify vocabulary cccc. 
  1209.  
  1210.         DELETE     ---     U
  1211.              When used in the form:
  1212.                        DELETE <fname>
  1213.              removes the file from the current directory.
  1214.  
  1215.         DEPTH     --- n     F     
  1216.              Leave  the number of the quantity of 16-bit values contained 
  1217.              in the data stack, before n was added. 
  1218.  
  1219.         DIGIT     c n1 --- n2 tf  (ok)        G
  1220.                   c n1 --- ff     (bad)     
  1221.              Converts the ASCII character c (using base n1) to its binary 
  1222.              equivalent  n2,   accompanied  by  a  true  flag.    If  the 
  1223.              conversion is invalid, leaves only a false flag. 
  1224.  
  1225.         DLITERAL     d --- d  (executing)     G
  1226.                      d ---    (compiling)     
  1227.              If compiling,  compile a stack double number into a literal. 
  1228.              Later  execution  of the definition containing  the  literal 
  1229.              will push it to the stack.   If executing,  the number  will 
  1230.              remain on the stack. 
  1231.  
  1232.         DMATRIX               U     
  1233.              A defining word used in the form:
  1234.                     n1 n2 DMATRIX <name>     
  1235.              to  create a dictionary entry for <name>,  making  a  double 
  1236.              precision  matrix  n1*n2*2 cells in length,  presetting  all 
  1237.              elements to zero.   When <name> is later executed,  it  uses 
  1238.              the  top stack parameter as the column number {0..n2-1}  and 
  1239.              the second stack parameter as the row number {0..n1-1},  and 
  1240.              returns the address of that element. 
  1241.  
  1242.         DMAX     d1 d2 --- d3     F             "d-max"
  1243.              Leave the larger of two double numbers. 
  1244.  
  1245.         DMIN     d1 d2 --- d3     F             "d-min"
  1246.              Leave the smaller of two double numbers.
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.         UNIFORTH VOCABULARY LIST                                Page A-20
  1257.  
  1258.  
  1259.  
  1260.         DNEGATE     d --- -d     F                   "d-negate"
  1261.              Leave the double number two's complement of a double number, 
  1262.              i.e., the difference 0 less d.
  1263.  
  1264.         DO     n1 n2 ---     F,I     
  1265.              Use in a colon-definition:
  1266.                        DO . . . LOOP
  1267.                or
  1268.                        DO . . . +LOOP     
  1269.              Begin   a  loop  which  will  terminate  based  on   control 
  1270.              parameters.  The  loop  index begins at n2,  and  terminates 
  1271.              based  on  the limit n1.   At LOOP or +LOOP,  the  index  is 
  1272.              modified  by a positive or negative value.   The range of  a 
  1273.              DO-LOOP is determined by the terminating word.   DO-LOOP may 
  1274.              be nested. 
  1275.  
  1276.         DOES>                 F,I,C                  "does"
  1277.              Define the run-time action of a word created by a high-level 
  1278.              defining word.  Used in the form:
  1279.                   : <name> . . . CREATE . . . DOES> . . . ;
  1280.                   and then  <name> <namex>     
  1281.              Marks  the termination of the defining part of the  defining 
  1282.              word <name> and begins the definition of the run time action 
  1283.              for  words  that  will  later  be  defined  by  <name>.   On 
  1284.              execution of <namex> the sequence of words between DOES> and 
  1285.              ;  will be executed, with the address of <namex>'s parameter 
  1286.              field on the stack.
  1287.  
  1288.         DP     --- addr     G     
  1289.              A user variable,  the dictionary pointer, which contains the 
  1290.              address   of  the  next  free  memory  location  above   the 
  1291.              dictionary.  The  value may be read by HERE and  altered  by 
  1292.              ALLOT. 
  1293.  
  1294.         DPL     --- addr     G     
  1295.              A user variable containing the number of digits to the right 
  1296.              of the decimal on floating point input. 
  1297.  
  1298.         DROP      n ---          F
  1299.              Drop the top number from the stack.
  1300.  
  1301.         DTOR      --- x1          U
  1302.              A constant containing the conversion factor from degrees  to 
  1303.              radians.
  1304.  
  1305.         DU<     ud1 ud2 --- flag     F               "d-u-less"
  1306.              True  if ud1 is less than ud2.   Both numbers are  unsigned.
  1307.  
  1308.         DUMP     addr n ---     G     
  1309.              Dump  n cells starting at addr.   Eight cells are listed per 
  1310.              output line in the current base.  The dump can be terminated 
  1311.              abnormally by striking any key. 
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.         UNIFORTH VOCABULARY LIST                                Page A-21
  1323.  
  1324.  
  1325.         DUP     n --- n n     F     
  1326.              Leave a copy of the top stack number. 
  1327.  
  1328.         DVECTOR                U     
  1329.              A defining word used in the form:
  1330.                    n DVECTOR <name>     
  1331.              to  create  a dictionary entry for <name> and make a  double 
  1332.              precision  vector,  preset to zero.   When <name>  is  later 
  1333.              executed,  it  uses  the  top stack value as  an  index  and 
  1334.              returns the corresponding element address <stgadr+2*value>.
  1335.  
  1336.         E.        x ---          U
  1337.              Print floating point number in free-format exponent form.
  1338.  
  1339.         E-        n1 --- n2      U
  1340.              Subtract the current element size from the top stack value.
  1341.  
  1342.         E+        n1 --- n2      U
  1343.              Add the current element size to the top stack value.
  1344.  
  1345.         EDIT     n ---     U     
  1346.              Start editing block (screen) number n. 
  1347.  
  1348.         EDITOR          U     
  1349.              The name of the video editor vocabulary. 
  1350.  
  1351.         EI+       n1 --- n2      U
  1352.              Add the loop index*element size to the top stack value.
  1353.  
  1354.         EI+!      n1 adr ---     U
  1355.              Add the loopindex*elementsize to the address,  and store  n1 
  1356.              at the resultant address.
  1357.  
  1358.         EI+@      n1 --- n2      U
  1359.              Add the loopindex*elementsize to the top stack value.  Using 
  1360.              the result as an address, fetch the contents.
  1361.  
  1362.         EI-       n1 --- n2      U
  1363.              Subtract the loopindex*elementsize from the top stack value.
  1364.  
  1365.         ELSE          F,I     
  1366.              Used in a colon-definition in the form:
  1367.                    IF . . . ELSE . . . THEN     
  1368.              ELSE executes after the true part following IF.  ELSE forces 
  1369.              execution to skip till just after THEN.  It has no effect on 
  1370.              the stack.  (See IF) 
  1371.  
  1372.         EMIT     char ---     F     
  1373.              Transmit character to the current output device. 
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.         UNIFORTH VOCABULARY LIST                                Page A-22
  1389.  
  1390.  
  1391.         EMPTY-BUFFERS          F     
  1392.              Mark  all  block  buffers  as  empty,   without  necessarily 
  1393.              affecting  their actual contents.   UPDATEd blocks  are  not 
  1394.              written to mass storage. 
  1395.  
  1396.         ENCLOSE     adr1 c --- adr1 n1 n2 n3     KERNEL     G     
  1397.              The  text  scanning primitive used by WORD.   From the  text 
  1398.              address  adr1 and an ASCII delimiting character  c,  ENCLOSE 
  1399.              determinines  the  byte offset to  the  first  non-delimiter 
  1400.              character  n1,  the offset to the first delimiter after  the 
  1401.              text n2, and the offset to the first character not included. 
  1402.              This  procedure  will  not  process past  an  ASCII  'null', 
  1403.              treating it as an unconditional delimiter. 
  1404.  
  1405.         END-CODE    ---     F
  1406.              Terminate a machine-code definition.
  1407.  
  1408.         ER1     ---     U
  1409.              An error handling word.
  1410.  
  1411.         ER2     ---     U
  1412.              An error handling word.
  1413.  
  1414.         ER3     ---         U
  1415.              An error handling word.
  1416.  
  1417.         ERASE     addr nbytes ---     G     
  1418.              Clear a region of memory to zero starting at addr. 
  1419.  
  1420.         ERCODE         --- n          U
  1421.              Return the last disk error code.
  1422.  
  1423.         ERROR     line ---     G     
  1424.              Execute error notification and possible restart of system.
  1425.  
  1426.         ES        --- n          U
  1427.              Leave the element size of the current system (16-bit = 2).
  1428.  
  1429.         EXCHANGE     n1 n2 ---     U     
  1430.              Exchange the contents of disk blocks n1 and n2. 
  1431.  
  1432.         EXECUTE     addr ---     F     
  1433.              Execute the dictionary entry whose code field address is  on 
  1434.              the stack. 
  1435.  
  1436.         EXIT          F,C     
  1437.              When compiled within a colon-defintion,  terminate execution 
  1438.              of that definition, at that point.  May not be used within a 
  1439.              DO-LOOP. 
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.         UNIFORTH VOCABULARY LIST                                Page A-23
  1455.  
  1456.  
  1457.         EXPECT     addr n ---     F     
  1458.              Transfer  characters  from the terminal beginning  at  addr, 
  1459.              upward,  until  a  "return"  or  the count  of  n  has  been 
  1460.              received.  Take  no action for n less than or equal to zero.  
  1461.              The  number  of  characters received is stored  in  variable 
  1462.              SPAN.
  1463.  
  1464.         EXPECTBL  addr n ---          U
  1465.              Same  as EXPECT except leaves a blank (ASCII 32)  after  the 
  1466.              entered string.
  1467.  
  1468.         EXTEND     n ---       U   
  1469.              Extend the current file by n blocks,  setting  each to blank
  1470.              except for a ";S" in the first bytes.
  1471.  
  1472.         F*     x1 x2 --- x3     U     
  1473.              Multiply x1 by x2, leaving the floating point result x3. 
  1474.  
  1475.         F/     x1 x2 --- x3     U     
  1476.              Divide x1 by x2, leaving the floating point result x3. 
  1477.  
  1478.         F+     x1 x2 --- x3     U
  1479.              Add x1 to x3, leaving the floating point result x3. 
  1480.  
  1481.         F-     x1 x2 --- x3     U
  1482.              Subtract x2 from x1, leaving the floating point result x3. 
  1483.  
  1484.         F.        x1 ---         U
  1485.              Print floating point number in free format.  #digits printed 
  1486.              is limited by constant FPSIG.
  1487.  
  1488.         FACOS          x1 --- x2   U
  1489.              Take the arc-cosine of an angle (x2 in radians).
  1490.  
  1491.         FALSE          --- n          U
  1492.              Return the value of a false flag (0).
  1493.  
  1494.         FASIN          x1 --- x2      U
  1495.              Take the arc-sine of an angle (x2 in radians).
  1496.  
  1497.         FATAN          x1 --- x2      U
  1498.              Take the arc-tangent of an angle (x2 in radians).
  1499.  
  1500.         FCB       --- n1         U
  1501.              Leave the address of the current File Control Block.
  1502.  
  1503.         FCONSTANT      x ---     U
  1504.              A defining word used in the form:
  1505.                   n FCONSTANT <name>
  1506.              To  create  a  dictionary  entry  for  <name>,  leaving  the 
  1507.              floating  point  constant x in its  parameter  field.   When 
  1508.              <name> is later executed, n will be left on the stack.
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.         UNIFORTH VOCABULARY LIST                                Page A-24
  1521.  
  1522.  
  1523.         FCOS      x1 --- x2      U
  1524.              Take the cosine of an angle (radians).
  1525.  
  1526.         FENCE     --- G
  1527.              A user variable containing an address below which FORGETting 
  1528.              is trapped.  To forget below this point, the user must alter 
  1529.              the contents of FENCE. 
  1530.  
  1531.         FEXP      x1 --- x2      U
  1532.              Raise x1 to the e power.
  1533.  
  1534.         FILESTATUS     ---       U
  1535.              List on the console information about the current file.
  1536.  
  1537.         FILL     addr n byte ---     F     
  1538.              Fill memory beginning at address with a sequence of n copies 
  1539.              of byte.   If the quantity n is less than or equal to  zero, 
  1540.              take no action. 
  1541.  
  1542.         FIND     --- addr     U     
  1543.              Leave  the compilation address of the next word name,  which 
  1544.              is accepted from then input stream.   If that word cannot be 
  1545.              found in the dictionary after a search, leave zero. 
  1546.  
  1547.         FIRST     --- n     G     
  1548.              A  variable that leaves the address of the  first  (lowest) 
  1549.              block buffer. 
  1550.  
  1551.         FIX     x1 --- d1     U
  1552.              Convert floating point x1 to a double precision integer d1. 
  1553.  
  1554.         FLD     --- addr     G     
  1555.              A user variable for control of number output field width. 
  1556.  
  1557.         FLN       x1 --- x2      U
  1558.              Take the natural (base e) logarithm of x1.
  1559.  
  1560.         FLOAT     d1 --- x1     U
  1561.              Convert  double  precision  integer  d1  to  the  equivalent 
  1562.              floating point value x1. 
  1563.  
  1564.         FLOG2     x1 --- x2      U
  1565.              Take the log base 2 of x1.
  1566.  
  1567.         FLOG10    x1   --- x2         U
  1568.              Take the common logarithm (base 10) of x1.
  1569.  
  1570.         FLUSH     ---     U,G
  1571.              A synonym for SAVE-BUFFERS.
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.         UNIFORTH VOCABULARY LIST                                Page A-25
  1587.  
  1588.  
  1589.         FMATRIX        n1 n2 ---      U
  1590.              A defining word used in the form:
  1591.                        n1 n2 FMATRIX <name>
  1592.              to  create  a  dictionary  entry for  <name>,  making  a  2-
  1593.              dimensional floating point matrix n1*n2 elements in  length.  
  1594.              When  <name>  is  later  executed,  it uses  the  top  stack 
  1595.              parameter  as  the column number {0..n2-1}  and  the  second 
  1596.              stack parameter as the row number {0..n1-1}, and returns the 
  1597.              address of that element.
  1598.  
  1599.         FNEGATE     x1 ---  -x1      U
  1600.              Change the sign of the floating point number x1. 
  1601.  
  1602.         FORGET                  F     
  1603.              Execute in the form:
  1604.                     FORGET <name>     
  1605.              Delete from the dictionary <name> and all words added to the 
  1606.              dictionary after <name>.  Failure to find <name> is an error 
  1607.              condition. 
  1608.  
  1609.         FORM               U     
  1610.              Send an ASCII 12 (formfeed) to the current output devices. 
  1611.  
  1612.         FORTH               F     
  1613.              The  name of the primary vocabulary.   Execution makes FORTH 
  1614.              the CONTEXT vocabulary.   Until additional user vocabularies 
  1615.              are  defined,  new user definitions become a part of  FORTH. 
  1616.              FORTH is immediate,  so it will execute during the  creation 
  1617.              of a colon-definition,  to select this vocabulary at compile 
  1618.              time. 
  1619.  
  1620.         FSIN      x1 --- x2      U
  1621.              Take the sine of an angle (radians).
  1622.  
  1623.         FSQRT     x1 --- x2      U
  1624.              Take the square root of x1.
  1625.  
  1626.         FTAN      x1 --- x2      U
  1627.              Take the tangent of an angle (radians).
  1628.  
  1629.         FVARIABLE      ---       U
  1630.              A defining word executed in the form:
  1631.                        FVARIABLE <name>
  1632.              to  create a dictionary entry for <name> and allot space for 
  1633.              one  floating-point element in its  body.   The  application 
  1634.              must  initialize  the stored value.   When <name>  is  later 
  1635.              executed, it will place the storage address on the stack.
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.         UNIFORTH VOCABULARY LIST                                Page A-26
  1653.  
  1654.  
  1655.         FVECTOR        n ---          U
  1656.              A defining word used in the form:
  1657.                        n FVECTOR <name>
  1658.              to  create a dictionary entry for <name> ana allot space for 
  1659.              n floating-point elements (a one-dimensional vector).   When 
  1660.              name  is later executed,  it uses the top stack value as  an 
  1661.              index  {0..n-1}  into the array and returns the  address  of 
  1662.              that element.
  1663.  
  1664.         GETBUF    blk# --- bufadr flag     U
  1665.              Examine the block buffers,  and return the address of one of 
  1666.              them.  If that buffer has been updated, flag=true.
  1667.  
  1668.         GETNUM     --- val     U     
  1669.              Interactively bring in the next number from the keyboard. 
  1670.  
  1671.         H'     --- n     U
  1672.              Interpret the next number in hex,  regardless of the current 
  1673.              base.
  1674.  
  1675.         H.     n ---     U     
  1676.              Print the top stack value in hexadecimal,  regardless of the 
  1677.              current base. 
  1678.  
  1679.         HASH      stradr vocptr --- stradr vocthd         U
  1680.              Used for "hashing" the dictionary into 4 threads.
  1681.  
  1682.         HDUMP     addr n ---     U     
  1683.              Same  as DUMP,  but in hexadecimal regardless of the current 
  1684.              base. 
  1685.  
  1686.         HERE     --- addr     F     
  1687.              Return   the  address  of  the  next  available   dictionary 
  1688.              location. 
  1689.  
  1690.         HEX               G     
  1691.              Change the current numberic input base to hexadecimal  (base 
  1692.              16). 
  1693.  
  1694.         HLD     --- addr     G     
  1695.              A  user  variable  that  holds the  address  of  the  latest 
  1696.              character of text during numeric output conversion. 
  1697.  
  1698.         HOLD     char ---     F     
  1699.              Insert char into a pictured numeric output string.  May only 
  1700.              be used between <# and #>. 
  1701.  
  1702.         I     --- n     F,C     
  1703.              Copy  the loop index onto the data stack.   Can only be used 
  1704.              in the forms
  1705.                    DO . . . I . . . LOOP   
  1706.              or 
  1707.                   DO . . . I . . . +LOOP 
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.         UNIFORTH VOCABULARY LIST                                Page A-27
  1719.  
  1720.  
  1721.         I+        n1 --- n2      U
  1722.              Add index I to the top stack value. 
  1723.  
  1724.         I-     n1 --- n2     U,C     
  1725.              Subtract index I from the top stack value. 
  1726.  
  1727.         ID.     addr ---     G     
  1728.              Print a definition's name from its name field address. 
  1729.  
  1730.         IF     flag ---     F,I     
  1731.              Used in a colon-definition in the forms:
  1732.                   flag IF . . . ELSE . . . THEN
  1733.               or
  1734.                   flag IF . . . THEN     
  1735.              If flag is true, the words following IF are executed and the 
  1736.              words  following  ELSE  are  skipped.    The  ELSE  part  is 
  1737.              optional.  If flag is false,  words between IF and ELSE,  or 
  1738.              between  IF  and THEN (when no ELSE is used),  are  skipped.  
  1739.              IF-ELSE-THEN conditionals may be nested. 
  1740.  
  1741.         IMMEDIATE               F     
  1742.              Mark the most recently made dictionary entry as a word which 
  1743.              will be executed when encountered during compilation  rather 
  1744.              than compiled. 
  1745.  
  1746.         INCLUDE        n1 ---    U
  1747.              Used in the form:
  1748.                   INCLUDE <fname>
  1749.              Close the current file,  saving any updated blocks.   Switch 
  1750.              to  file  fname,  load  block 01,  and then  return  to  the 
  1751.              original file.  Only one level of nesting is allowed.
  1752.  
  1753.         INDEX     n1 n2 ---     G     
  1754.              Print  the first line of each screen over the range n1 to n2 
  1755.              inclusive.   This  is used to view the comment lines  of  an 
  1756.              area of text on disk screens. 
  1757.  
  1758.         INDGEN     addr n ---     U     
  1759.              Fill  n cells starting at addr with the cell  number.   That 
  1760.              is, (addr)=0, (addr+2)=1, (addr+4)=2, ...  Used to preset an 
  1761.              array to its element numbers. 
  1762.  
  1763.         INTERPRET              G     
  1764.              The  outer  text interpreter which sequentially executes  or 
  1765.              compiles  text  from  the input stream  (terminal  or  disk) 
  1766.              depending on STATE.   If the word name cannot be found after 
  1767.              a search of CONTEXT and CURRENT,  then it is converted to  a 
  1768.              number according to the current base.  That also failing, an 
  1769.              error message echoing the name with a "?" will be given. 
  1770.  
  1771.         IO!     val port ---     U     
  1772.              Store the 16-bit value val into port. 
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.         UNIFORTH VOCABULARY LIST                                Page A-28
  1785.  
  1786.  
  1787.         IO@     port --- val     U     
  1788.              Fetch a 16-bit value from a port. 
  1789.  
  1790.         IOBYTE     --- addr      U     
  1791.              A variable containing the printer/terminal output flag. 
  1792.  
  1793.         IOC!    val port ---     U     
  1794.              Store the 8-bit value val into port. 
  1795.  
  1796.         IOC@     port --- val     U     
  1797.              Fetch an 8-bit value from a port. 
  1798.  
  1799.         J     --- n     F,C     
  1800.              Return  the index of the next outer loop.   May be used only 
  1801.              within a nested DO-LOOP in the form:
  1802.                   DO . . . DO . . . J . . . LOOP . . . LOOP 
  1803.  
  1804.         KEY     --- char     F     
  1805.              Leave  the ASCII value of the next available character  from 
  1806.              then current input device. 
  1807.  
  1808.         LATEST     --- addr     G     
  1809.              Leave  the  name field address of the topmost  word  in  the 
  1810.              CURRENT vocabulary. 
  1811.  
  1812.         LEAVE               F     
  1813.              Force   immediate  termination  of  a  DO-LOOP.    Execution 
  1814.              continues after the next LOOP or +LOOP.
  1815.  
  1816.         LF              U     
  1817.              Send an ASCII 10 (linefeed) to the current output device. 
  1818.  
  1819.         LIMIT     --- n     G     
  1820.              A variable leaving the address just above the highest memory 
  1821.              available  for a disk buffer.   Usually this is the  highest 
  1822.              system memory. 
  1823.  
  1824.         LINE     n1 --- n2     U     
  1825.              Leave  the buffer address n2 of the n1th line in the current 
  1826.              screen (pointed to by SCR). 
  1827.  
  1828.         LIST     n ---     F     
  1829.              List the ASCII symbolic contents of screen n on the  current 
  1830.              output device, setting SCR to contain n.  n is unsigned. 
  1831.  
  1832.         LIT     --- n     G     
  1833.              Within  a  colon-definition,  LIT is automatically  compiled 
  1834.              before each 16-bit literal number encountered in input text.  
  1835.              Later  execution  of  LIT causes the contents  of  the  next 
  1836.              dictionary address to be pushed to the stack. 
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.         UNIFORTH VOCABULARY LIST                                Page A-29
  1851.  
  1852.  
  1853.         LITERAL     n ---     F,I     
  1854.              If  compiling,  then compile the stack value n as  a  16-bit 
  1855.              literal,  which  when  later executed,  will leave n on  the 
  1856.              stack. 
  1857.  
  1858.         LOAD     n ---     F     
  1859.              Begin  interpretation  of screen n by making  it  the  input 
  1860.              stream;  preserve  the locators of the present input  stream 
  1861.              (from  >IN  and BLK).   If interpretation is not  terminated 
  1862.              explicitly  it will be terminated when the input  stream  is 
  1863.              exhausted.    Control  then  returns  to  the  input  stream 
  1864.              containing LOAD, determined by the input stream locators >IN 
  1865.              and BLK. 
  1866.  
  1867.         LOOP            F,I     
  1868.              Increment  the DO-LOOP index by one,  terminating  the  loop 
  1869.              when  the new index crosses the boundary between limit-1 and 
  1870.              limit.
  1871.  
  1872.         LOWUP     --- adr        U
  1873.              A variable containing the flag that determines if input text 
  1874.              is  to  be  converted to upper  case  before  searching  the 
  1875.              dictionary.
  1876.  
  1877.         M/MOD     d n1 --- n2 n3     G     
  1878.              A  mixed  magnitude  math operator which leaves  the  signed 
  1879.              remainder  n2 and signed quotient n3,  from a double  number 
  1880.              dividend and divisor n1.   The remainder takes its sign from 
  1881.              the dividend. 
  1882.  
  1883.         MAKE      ---       U
  1884.              Used in the form:
  1885.                   MAKE <fname>
  1886.              Create a new file called fname.  After MAKE is executed, you 
  1887.              are left in the new file.
  1888.  
  1889.         MAKE-CHAN      ---       U
  1890.              Make a new FCB/channel for file access.
  1891.  
  1892.         MATCH    adr1 n1 adr2 n2 --- n3     U     
  1893.              Find  the  string  starting at adr2 (n2 bytes long)  in  the 
  1894.              larger string starting at adr1 (n1 bytes long,  n1>n2). If a 
  1895.              match  occurs,  leave  the address (in buffer adr1)  of  the 
  1896.              first correct character; otherwise, leave 0. 
  1897.  
  1898.         MATRIX            U     
  1899.              A defining word used in the form: 
  1900.                        n1 n2 MATRIX <name>     
  1901.              to  create  a  dictionary  entry for  <name>,  making  a  2-
  1902.              dimensional array (matrix) n1*n2 cells in length, presetting 
  1903.              all  elements to zero.   When <name> is later  executed,  it 
  1904.              uses the top stack parameter as the column number  {0..n2-1} 
  1905.              and  the second stack parameter as the row number {0..n1-1}, 
  1906.              and returns the address of that element.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.         UNIFORTH VOCABULARY LIST                                Page A-30
  1917.  
  1918.  
  1919.  
  1920.         MAX     n1 n2 --- n3     F                        "max"
  1921.              Leave the greater of two numbers.
  1922.  
  1923.         MAXI     --- n1     U,C     
  1924.              Copy  the maximum iteration counter of the  current  DO-LOOP 
  1925.              from the return stack to the data stack. 
  1926.  
  1927.         MCOPY     n1 n2 n3 ---     U 
  1928.              Copy  n3  blocks  from channel A (starting at block  n1)  to 
  1929.              channel B (starting at block n2).
  1930.  
  1931.         MESSAGE     n ---     G     
  1932.              Print  on  the  selected output device the text  of  line  n 
  1933.              relative  to  screen 200 of drive 0.   n may be positive  or 
  1934.              negative.  MESSAGE may be used to print incidental text such 
  1935.              as  report headers.   If WARNING is zero,  the message  will 
  1936.              simply be printed as a number (disk not available).
  1937.  
  1938.         MIN         n1 n2 --- n2     F               "min"
  1939.              Leave the lesser of two numbers.
  1940.  
  1941.         MOD         n1 n2 --- n3     F                    "mod"
  1942.              Divide  n1 by n2,  leaving the remainder n3,  with the  same 
  1943.              sign as n1.
  1944.  
  1945.         MOVE     addr1 addr2 n ---     F     
  1946.              Move  the  specified  quantity  n  of  16-bit  memory  cells 
  1947.              beginning  at addr1 into memory at addr2.   The contents  of 
  1948.              addr1 is moved first.   If n is negative or zero, nothing is 
  1949.              moved. 
  1950.  
  1951.         MS     n ---     G     
  1952.              Delay n milliseconds before continuing execution. 
  1953.  
  1954.         MSGBLK     --- adr     U
  1955.              Used  by MESSAGE.   A variable containing the starting block 
  1956.              number on which messages are stored.
  1957.  
  1958.         NAME>     adr1 --- adr2       F
  1959.              Convert  the  name  field address adr1 of a  word  into  its 
  1960.              corresponding code field address adr2.
  1961.  
  1962.         NEGATE     n --- -n     F     
  1963.              Leave the two's complement of a number, i.e., the difference 
  1964.              of 0 less n. 
  1965.  
  1966.         NOCASE     n1 --- n1 n1     U     
  1967.              Same as DUP, used in CASE statement. 
  1968.  
  1969.         NOOP     ---           G     
  1970.              Perform no operation whatsoever. 
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.         UNIFORTH VOCABULARY LIST                                Page A-31
  1983.  
  1984.  
  1985.         NOT     n1 --- n2     U     
  1986.              Perform the one's complement of n1. 
  1987.  
  1988.         NUMBER     addr --- d     G     
  1989.              Convert  a character string left at addr with  a  preceeding 
  1990.              count,  to a signed double number, using the current numeric 
  1991.              base.   If  numeric  conversion is not  possible,  an  error 
  1992.              message will be given. 
  1993.  
  1994.         O'     --- n     U
  1995.              Interpret  the  next number in base  8,  regardless  of  the 
  1996.              current base.
  1997.  
  1998.         O.     n ---     U     
  1999.              Print n in octal, regardless of the current base. 
  2000.  
  2001.         OCTAL          U     
  2002.              Change  the  current numeric conversion base to octal  (base 
  2003.              8). 
  2004.  
  2005.         ODUMP     addr n -----     U     
  2006.              Same  as  DUMP,  except output is in  octal,  regardless  of 
  2007.              current base. 
  2008.  
  2009.         OFFSET     --- addr     U     
  2010.              A  user variable which contains the sector offset  from  the 
  2011.              beginning of the current drive.  This offset is added to all 
  2012.              sector   requests.    Note   the  difference  between   this 
  2013.              definition and the FIG definition. 
  2014.  
  2015.         OPEN      ---       U 
  2016.              Used in the form:
  2017.                   OPEN <fname>
  2018.              This  word attempts to open file fname for future  I/O.   If 
  2019.              fname  does  not currently exist,  UNIFORTH will  query  you 
  2020.              about creating it.
  2021.  
  2022.         OR     n1 n2 --- n3     F     
  2023.              Leave the bitwise inclusive-or of two numbers. 
  2024.  
  2025.         OUT     --- addr     G     
  2026.              A  user variable that contains a value incremented by  EMIT. 
  2027.              The  user  may  alter and examine  OUT  to  control  display 
  2028.              formatting. 
  2029.  
  2030.         OVER     n1 n2 --- n1 n2 n1     F     
  2031.              Leave a copy of the second number on the stack. 
  2032.  
  2033.         P+     n1 n2 n3 n4 --- n5 n6     U     
  2034.              Perform addition of an ordered pair.  The results are:
  2035.                   n5=n1+n3       n6=n2+n4     
  2036.              Used in the editor for offsets on x,y cursor positioning. 
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.         UNIFORTH VOCABULARY LIST                                Page A-32
  2049.  
  2050.  
  2051.         PAD     --- addr     F     
  2052.              The address of a scratch area used to hold character strings 
  2053.              for intermediate processing.  The minimum capacity of PAD is 
  2054.              64 characters (addr through addr+63). 
  2055.  
  2056.         PICK     n1 --- n2     SYSTEM block 25     F     
  2057.              Return  a  copy of the n1th stack  value,  not  counting  n1 
  2058.              itself.  Aero relative:  1 PICK is equivalent to OVER.
  2059.  
  2060.         PLUS?     --- flag     U
  2061.              A  flag for Z.R.   If PLUS?  is nonzero,  Z.R will include a 
  2062.              plus sign preceding all positive numbers.
  2063.  
  2064.         PRECIS     --- adr     U     
  2065.              A USER variable containing the precision flag  (0=16,  1=32, 
  2066.              integer; 2=32-bit floating) of the last number converted. 
  2067.  
  2068.         PREMIT     b ---     U     
  2069.              Send a single ASCII character to the printer. 
  2070.  
  2071.         PREV     --- addr     G     
  2072.              A  variable  containing the address of the disk buffer  most 
  2073.              recently referenced.   The UPDATE commands marks this buffer 
  2074.              to be later written to disk. 
  2075.  
  2076.         PRINTER               U     
  2077.              Select the printer to be the current output device. 
  2078.  
  2079.         QUERY               F     
  2080.              Accept  input  of up to 80 characters (or until a  'return') 
  2081.              from  the  operator's  terminal,  into  the  terminal  input 
  2082.              buffer.  WORD may be used to accept text from this buffer as 
  2083.              the input stream, by setting >IN and BLK to zero. 
  2084.  
  2085.         QUIT                F     
  2086.              Clear the return stack,  setting execution mode,  and return 
  2087.              control to the terminal.  No message is given. 
  2088.  
  2089.         R#     --- addr     G     
  2090.              A user variable which may contain the location of an editing 
  2091.              cursor, or ther file related function. 
  2092.  
  2093.         R/W     addr blk f ---     G     
  2094.              The primitive block-oriented disk read/write routine.   Addr 
  2095.              specified the source or destination block buffer, blk is the 
  2096.              sequential number of the referenced block,  and f is a  flag 
  2097.              (f=0,  write;  f=1,  read).   R/W determines the location on 
  2098.              mass   storage,   performs  the  read/write  and  all  error 
  2099.              checking. 
  2100.  
  2101.         R>     --- n     F,C     
  2102.              Transfer  n from the return stack to the  data  stack.   "r-
  2103.              from" 
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.         UNIFORTH VOCABULARY LIST                                Page A-33
  2115.  
  2116.  
  2117.         R0     --- addr     G     
  2118.              A  user  variable  containing the initial  location  of  the 
  2119.              return stack.  "r-zero"  See RP! 
  2120.  
  2121.         R@     --- n     F,C     
  2122.              Copy  the number on the top of the return stack to the  data 
  2123.              stack.  "r-fetch" 
  2124.  
  2125.         REMSPACE             G     
  2126.              Print   the   remaining  space  (in  bytes)  available   for 
  2127.              dictionary entries. 
  2128.  
  2129.         REPEAT              F,I,C
  2130.              Used in a colon-definition in the form:
  2131.                   BEGIN . . . WHILE . . . REPEAT     
  2132.              At run-time,  REPEAT returns to just after the corresponding 
  2133.              BEGIN. 
  2134.  
  2135.         ROLL     n ---     F     
  2136.              Extract  the n-th stack value to the top of the  stack,  not 
  2137.              counting  n  itself,  moving the remaining values  into  the 
  2138.              vacated  position.   An error condition results for  n  less    
  2139.              than  one.   3  ROLL is the same as ROT.   1 ROLL is a  null 
  2140.              operation. 
  2141.  
  2142.         ROT     n1 n2 n3 --- n2 n3 n1     F     
  2143.              Rotate  the top three values,  bringing the deepest  to  the 
  2144.              top.  "rote" 
  2145.  
  2146.         RP@     --- n1     G     
  2147.              Copy  the address that the return stack pointer is  pointing 
  2148.              to onto the data stack. 
  2149.  
  2150.         RP!          G     
  2151.              Initialize the return stack pointer from user variable R0. 
  2152.  
  2153.         S>D     n --- d     G     
  2154.              Sign  extend a single 16-bit number to form a double  32-bit 
  2155.              number. 
  2156.  
  2157.         S0     --- addr     G     
  2158.              A  user  variable that contains the initial  value  for  the 
  2159.              stack pointer.  "s-zero"   See SP!  
  2160.  
  2161.         SAVE-BUFFERS             F     
  2162.              Write  all blocks to mass storage that have been flagged  as 
  2163.              UPDATEd.  An error condition results if mass storage writing 
  2164.              is not completed.  A synonym is FLUSH. 
  2165.  
  2166.         SCR     --- addr     F     
  2167.              Leave the address of a variable containing the number of the 
  2168.              screen most recently listed.  "s-c-r" 
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.         UNIFORTH VOCABULARY LIST                                Page A-34
  2181.  
  2182.  
  2183.         SHIFT     n1 n2 --- n3     U     
  2184.              Shift n1 by n2 bits right or left.   If n2 is negative,  the 
  2185.              shift is to the left; if positive, to the right. 
  2186.  
  2187.         SHOW     n1 n2 ---     G     
  2188.              List  all blocks at least including n1 through n2  in  TRIAD 
  2189.              form. 
  2190.  
  2191.         SHUCK    adr1 adr2 ---     U
  2192.              Remove all words following adr1 in the vocabulary pointed to 
  2193.              by adr2.
  2194.  
  2195.         SIGN     n ---     F,C     
  2196.              Insert  the ASCII "-" (minus sign) into the pictured numeric 
  2197.              output string, if n is negative. 
  2198.  
  2199.         SIGNON               U     
  2200.              A  word that prints the signon message of UNIFORTH and  then 
  2201.              enters ABORT. 
  2202.  
  2203.         SMUDGE               G
  2204.              Used  during word definition to toggle the "smudge bit" in a 
  2205.              definition's  name  field.   This  prevents  an  uncompleted 
  2206.              definition  from  being found  during  dictionary  searches, 
  2207.              until compiling is completed without error. 
  2208.  
  2209.         SP!               G     
  2210.              Initialize the data stack pointer from user variable S0. 
  2211.  
  2212.         SP@     --- addr     G     
  2213.              Return the address of the data stack position (that is,  the 
  2214.              value  of the stack pointer) to the top of the stack,  as it 
  2215.              was before SP@ was executed. 
  2216.  
  2217.         SPACE              F     
  2218.              Transmit an ASCII blank to the current output device. 
  2219.  
  2220.         SPACES     n ---     F     
  2221.              Transmit  n spaces to the current output  device.   Take  no 
  2222.              action for n of zero of less. 
  2223.  
  2224.         SPAN      --- adr        F
  2225.              A  variable containing the number of characters input during 
  2226.              the last EXPECT.
  2227.  
  2228.         SS*D     n1 n2 --- d     G     
  2229.              A  mixed  magnitude math operation which leaves  the  double 
  2230.              number  signed  product of two  signed  integers.   Warning:  
  2231.              this name may be changed to S*SD in future releases. 
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.         UNIFORTH VOCABULARY LIST                                Page A-35
  2247.  
  2248.  
  2249.         STATE     --- addr     F     
  2250.              Leave the address of the variable containing the compilation 
  2251.              state.    A   non-zero  content  indicates  compilation   is 
  2252.              occurring,   but   the  value  itself  may  be  installation 
  2253.              dependent. 
  2254.  
  2255.         SUBROUTINE          U     
  2256.              A defining word used in the form:
  2257.                  SUBROUTINE <name> . . . END-CODE     
  2258.              to create a machine-language word that is only callable from 
  2259.              other machine-language words.  It has no code field address.  
  2260.              Executing  <name>  at a later time puts the address  of  the 
  2261.              first machine-code instruction on the stack.   <name>  would 
  2262.              be used like:
  2263.              CODE XX . . . <name> CALL, . . . <name> JMP, . . . END-CODE     
  2264.              by another word. 
  2265.  
  2266.         SWAP     n1 n2 --- n2 n1     F     
  2267.              Exchange the top two stack values. 
  2268.  
  2269.         TERMINAL          U     
  2270.              Select the system console for further output. 
  2271.  
  2272.         THEN                 F,I     
  2273.              Used in a colon-definition in the form:
  2274.                    IF . . . ELSE . . . THEN
  2275.             or
  2276.                    IF . . . THEN     
  2277.              THEN  is the point where execution resumes after ELSE or  IF 
  2278.              (when no ELSE is present). 
  2279.  
  2280.         TIB     --- addr     G     
  2281.              A user variable containing the address of the terminal input 
  2282.              buffer. 
  2283.  
  2284.         TLOAD          ---       U
  2285.              Load  the  current file as a text-oriented  file.   (May  be 
  2286.              called FLOAD in your system).
  2287.  
  2288.         TOGGLE     addr b ---     G     
  2289.              Complement the contents of addr by the bit pattern b. 
  2290.  
  2291.         TRACE     --- addr     U
  2292.              Flag to turn the "unravel" trace on (1) or off(0).
  2293.  
  2294.         TRAVERSE     adr1 n --- adr2     G     
  2295.              Move  across  the name field of a definition.   adr1 is  the 
  2296.              address  of either the length byte or the last  letter.   If 
  2297.              n=1,  the motion is toward high memory;  if n=-1, the motion 
  2298.              is toward low memory.  The adr2 resulting the the address of 
  2299.              the other end of the name. 
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.         UNIFORTH VOCABULARY LIST                                Page A-36
  2313.  
  2314.  
  2315.         TRIAD     n ---     G     
  2316.              Display on the selected output device the three screens that 
  2317.              include n,  beginning with a screen that is evenly divisible 
  2318.              by 3. 
  2319.  
  2320.  
  2321.         TRUE      --- n               U
  2322.              A constant containing the value of a true flag (=-1).
  2323.  
  2324.         TRUNK          --- adr        F
  2325.              A variable containing the address of the trunk vocabulary.
  2326.  
  2327.         TURNKEY     --- adr     U     
  2328.              The  address  in the kernel COLD routine of the CFA  of  the 
  2329.              word  SIGNON.   By  replacing  SIGNON  with  a  user-defined 
  2330.              function, you can autostart any word upon coldstart. 
  2331.  
  2332.         TYPE     addr n ---     F     
  2333.              Transmit  n characters beginning at address to  the  current 
  2334.              output  device.   No  action takes place for n less than  or 
  2335.              equal to zero. 
  2336.  
  2337.         U.     un ---     F     
  2338.              Display  un  converted  according to  BASE  as  an  unsigned 
  2339.              number, in a free-field format, with one trailing blank. "u-
  2340.              dot" 
  2341.  
  2342.         U2/       ud1 --- ud2              F
  2343.              Divide unsigned double by 2.
  2344.  
  2345.         U<     un1 un2 --- flag     F     
  2346.              Leave  the flag representing the magnitude comparison of un1 
  2347.              <  un2,  where  un1 and un2 are treated at  16-bit  unsigned 
  2348.              integers.  "u-less-than" 
  2349.  
  2350.         U<=     un1 un2 --- flag     U     
  2351.              True if un1 is less than or equal to un2, unsigned. 
  2352.  
  2353.         U>     un1 un2 --- flag     U     
  2354.              True if un1 is greater than un2, unsigned. 
  2355.  
  2356.         U>=     un1 un2 --- flag     U     
  2357.              True if un1 is greater than or equal to un2, unsigned. 
  2358.  
  2359.         UM/MOD     ud1 un2 --- un3 un4     F     
  2360.              Perform  the unsigned division of double number ud1 by  ud2, 
  2361.              leaving the remainder un3 and quotient un4.   All values are 
  2362.              unsigned.
  2363.  
  2364.         UM/MODD     ud1 u2 --- u3 ud4     G     
  2365.              An  unsigned mixed magnitude math operation which  leaves  a 
  2366.              double quotient ud4 and remainder u3, from a double dividend 
  2367.              ud1 and single divisor u2. 
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.         UNIFORTH VOCABULARY LIST                                Page A-37
  2379.  
  2380.  
  2381.         UNPRINT               U     
  2382.              Prints an informative message for LIST and INDEX. 
  2383.  
  2384.         UNRAVEL     ---      U
  2385.              Trace the return stack nesting, then execute QUIT.
  2386.  
  2387.         UNTIL     flag ---     F,I     
  2388.              Within  a colon-definition,  mark the end of  a  BEGIN-UNTIL 
  2389.              loop,  which  will  terminate based on a flag.   If flag  is 
  2390.              true,  the loop is terminated.   If flag is false, execution 
  2391.              returns  to  the  first  word  after   BEGIN.    BEGIN-UNTIL 
  2392.              structures may be nested. 
  2393.  
  2394.         UPPER     adr cnt --          U
  2395.              Convert the string to upper case ASCII.
  2396.  
  2397.         UPDATE             F     
  2398.              Mark  the most recently referenced block as  modified.   The 
  2399.              block will subsequently be automatically transferred to mass 
  2400.              storage  should its memory buffer be needed for storage of a 
  2401.              different block, or upon execution of SAVE-BUFFERS. 
  2402.  
  2403.         US>D     u --- ud     U
  2404.              Convert the unsigned 16-bit integer to 32-bit form.
  2405.  
  2406.         USE     --- addr     G     
  2407.              A variable containing the address of the block buffer to use 
  2408.              next, or in other words, the one least recently written. 
  2409.  
  2410.         USER     n ---          G     
  2411.              A defining word used in the form:
  2412.                   n USER cccc     
  2413.              which creates a user variable cccc.   The parameter field of 
  2414.              cccc  contains  n  as a fixed offset relative  to  the  user 
  2415.              pointer  register UP for this user variable.   When cccc  is 
  2416.              later executed, it places the sum of its offset and the user 
  2417.              area  base  address on the stack as the storage  address  of 
  2418.              that particular variable. 
  2419.  
  2420.         USS*D     un1 un2 --- ud3     F     
  2421.              Perform  an unsigned multiplication of un1 by  un2,  leaving 
  2422.              the double number product ud3.  All values are unsigned. "u-
  2423.              times" 
  2424.  
  2425.         VARIABLE                F     
  2426.              A defining word executed in the form:
  2427.                        VARIABLE <name>     
  2428.              to create a dictionary entry for <name> and allot two  bytes 
  2429.              for  storage in the parameter field.   The application  must 
  2430.              initialize the stored value.  When <name> is later executed, 
  2431.              it will place the storage address on the stack. 
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.         UNIFORTH VOCABULARY LIST                                Page A-38
  2445.  
  2446.  
  2447.         VECTOR               U     
  2448.              A defining word used in the form:
  2449.                          n VECTOR <name>     
  2450.              to  create a dictionary entry for <name>,  thereby making  a 
  2451.              vector n cells long,  presetting all elements to zero.  When 
  2452.              <name> is later executed, it uses the top stack value  as an 
  2453.              index  into  the  array  and returns  the  address  of  that 
  2454.              element. {0..n-1} 
  2455.  
  2456.         WORDS          G     
  2457.              List the names of the definitions in the context vocabulary. 
  2458.              The actuation of any key on the terminal will stop the list. 
  2459.  
  2460.         VOC-LINK     --- addr     G     
  2461.              A  user  variable containing the address of a field  in  the 
  2462.              definition  of  the most recently created  vocabulary.   All 
  2463.              vocabulary names are linked by these fields to allow control 
  2464.              for FORGETing through multiple vocabularies. 
  2465.  
  2466.         VOCABULARY          F     
  2467.              A defining word used in the form:
  2468.                   VOCABULARY <name>     
  2469.              to create a vocabulary definition <name>.  Subsequent use of 
  2470.              <name> will make it the CONTEXT vocabulary which is searched 
  2471.              first by INTERPRET.   The sequence "<name> DEFINITIONS" will 
  2472.              also  make  <name>  the CURRENT vocabulary  into  which  new 
  2473.              definitions are placed.  By convention, vocabulary names are 
  2474.              to be declared IMMEDIATE.  See VOC-LINK. 
  2475.  
  2476.         WARM           G     
  2477.              A  warm-start  boot  entry point.   Resets  the  data  stack 
  2478.              pointer,  but  does  not re-initialize the return  stack  or 
  2479.              dictionary pointers. 
  2480.  
  2481.         WARNING     --- addr     G     
  2482.              A  user  variable  containing a value  controlling  messages 
  2483.              output  from ?ERROR or MESSAGE.   If WARNING=1,  a  disk  is 
  2484.              assumed present,  and messages are printed relative to block 
  2485.              200 of disk drive 0.   If it is equal to zero,  messages are 
  2486.              not  retrieved from disk;  they are just given numbers.   If 
  2487.              WARNING= -1, ?ERROR will execute ABORT. 
  2488.  
  2489.         WHILE     flag ---     F,I,C     
  2490.              Used in a colon-definition in the form:
  2491.                    BEGIN . . . flag WHILE . . . REPEAT     
  2492.              Select conditional execution based on the flag.   On a  true 
  2493.              flag,  continue  execution  through to  REPEAT,  which  then 
  2494.              returns  back to just after BEGIN.   On a false  flag,  skip 
  2495.              execution to just after REPEAT, exiting the structure. 
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.         UNIFORTH VOCABULARY LIST                                Page A-39
  2511.  
  2512.  
  2513.         WIDTH     --- addr     G     
  2514.              A  user  variable containing the maximum numbers of  letters 
  2515.              saved in the compilation of a definition's name.  It must be 
  2516.              1  through  31,  with  a default  value  of  31.   The  name 
  2517.              character count and its natural characters are saved,  up to 
  2518.              the  value in WIDTH.   The value may be changed at any  time 
  2519.              within the above limits. 
  2520.  
  2521.         WORD     char --- addr     F     
  2522.              Receive characters from the input stream until the  non-zero 
  2523.              delimiting  character is encountered or the input stream  is 
  2524.              exhausted,  ignoring leading delimiters.  The characters are 
  2525.              stored  as  a packed string with the character count in  the 
  2526.              first character position.   The actual delimiter encountered 
  2527.              (char  or  null) is stored at the end of the  text  but  not 
  2528.              included in the count.  If the input stream was exhausted as 
  2529.              WORD is called, then a zero length will result.  The address 
  2530.              of the beginning of this packed string is left on the stack. 
  2531.  
  2532.         X'     --- n     U
  2533.              Interpret  the  next number as decimal,  regardless  of  the 
  2534.              current base.
  2535.  
  2536.         X.     n ---     U
  2537.              Display  the number in decimal,  regardless of  the  current 
  2538.              base.
  2539.  
  2540.         XON/XOFF       --- adr        U
  2541.              A  variable  that turns on/off  the  ctrl-s/ctrl-q  keyboard 
  2542.              check.
  2543.  
  2544.         XOR     n1 n2 --- n3     F                   "x-or"
  2545.              Leave the bitwise exclusive-or of two numbers. 
  2546.  
  2547.         Y/N       ---  flag          U
  2548.              Bring in a yes/no/escape type answer.
  2549.  
  2550.         Z.R     n1 n2 ---     U
  2551.              Display n1 right justified in n2 columns.   Zero fill to the 
  2552.              left.  See PLUS?.
  2553.  
  2554.         [                      F,I                   "left-bracket"
  2555.              End the compilation mode.  The text from the input stream is 
  2556.              subsequently executed.  See ].
  2557.  
  2558.         [']                      F
  2559.              Immediate form of tick.
  2560.  
  2561.         [COMPILE]              F,I,C                 "bracket-compile"
  2562.              Used in a colon-definition in the form:
  2563.                    [COMPILE] <name>     
  2564.              Force compilation of <name>.   This allows compilation of an 
  2565.              IMMEDIATE   word  when  it  would  otherwise  be   executed.
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.         UNIFORTH VOCABULARY LIST                                Page A-40
  2577.  
  2578.  
  2579.         ]                       F                    "right-bracket"
  2580.              Set the compilation mode.  The text from the input stream is 
  2581.              subsequently compiled.  See [.
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642. ee [.
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.